package tools;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * Classe technique pour l'envoi de mails
 */
public class MailHelper {

  // Address to the smtp server used to send the mail
  // TODO Mettre le server smtp dans un fichier properties ou dans une classe de
  // constantes
  private static String smtp = "YOU SMTP";

  /**
   * Méthode pour l'envoi de mail à une liste de destinataires (séparés par une
   * virgule)
   * 
   * @param from
   *          Adresse de l'expéditeur
   * @param to
   *          Adresse du ou des destinataires
   * @param subject
   *          Sujet du mail
   * @param content
   *          Contenu du mail au format html
   * @throws MessagingException
   *           Exception levée en cas de souci d'envoi de mail
   */
  public static void sendMail(String from, String to, String subject, String content)
      throws MessagingException {
    
		final String username = "avisabsenceepts@gmail.com";
		final String password = "Iu2b4TIt->K";

		Properties props = new Properties();
		props.put("mail.smtp.auth", "true");
		props.put("mail.smtp.starttls.enable", "true");
		props.put("mail.smtp.host", "smtp.gmail.com");
		props.put("mail.smtp.port", "587");

		Session session = Session.getInstance(props,
		  new javax.mail.Authenticator() {
			protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(username, password);
			}
		  });

		try {

			Message message = new MimeMessage(session);
			message.setFrom(new InternetAddress(from));
			message.setRecipients(Message.RecipientType.TO,
				InternetAddress.parse(to));
			message.setSubject(subject);
			message.setContent(content, "text/html");

			Transport.send(message);

			System.out.println("Done");

		} catch (MessagingException e) {
			throw new RuntimeException(e);
		}
  }
}
